home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / asmutil / a86v400.zip / A06B.DOC < prev    next >
Text File  |  1994-12-30  |  31KB  |  531 lines

  1.                                                               6-9
  2.  
  3. Opcodes    Instruction     Description
  4.  
  5. 67 or nil  A2 (prefix)   3 Use 16-bit address (indexing) in next instruction
  6. 67 or nil  A4 (prefix)   3 Use 32-bit address (indexing) in next instruction
  7. 37         AAA             ASCII adjust AL (carry into AH) after addition
  8. D5 0A      AAD             ASCII adjust before division (AX = 10*AH + AL)
  9. D4 0A      AAM             ASCII adjust after multiply (AL/10: AH=Quo AL=Rem)
  10. 3F         AAS             ASCII adjust AL (borrow from AH) after subtraction
  11.  
  12. 14 ib      ADC AL,ib       Add with carry immediate byte into AL
  13. 15 iv      ADC eAX,iv      Add with carry immediate vword into eAX
  14. 80 /2 ib   ADC eb,ib       Add with carry immediate byte into EA byte
  15. 10 /r      ADC eb,rb       Add with carry byte register into EA byte
  16. 83 /2 ib   ADC ev,ib       Add with carry immediate byte into EA vword
  17. 81 /2 iv   ADC ev,iv       Add with carry immediate vword into EA vword
  18. 11 /r      ADC ev,rv       Add with carry vword register into EA vword
  19. 12 /r      ADC rb,eb       Add with carry EA byte into byte register
  20. 13 /r      ADC rv,ev       Add with carry EA vword into vword register
  21.  
  22. 04 ib      ADD AL,ib       Add immediate byte into AL
  23. 05 iv      ADD eAX,iv      Add immediate vword into eAX
  24. 80 /0 ib   ADD eb,ib       Add immediate byte into EA byte
  25. 00 /r      ADD eb,rb       Add byte register into EA byte
  26. 83 /0 ib   ADD ev,ib       Add immediate byte into EA vword
  27. 81 /0 iv   ADD ev,iv       Add immediate vword into EA vword
  28. 01 /r      ADD ev,rv       Add vword register into EA vword
  29. 02 /r      ADD rb,eb       Add EA byte into byte register
  30. 03 /r      ADD rv,ev       Add EA vword into vword register
  31. 0F 20      ADD4S         N Add CL nibbles BCD, DS:SI into ES:DI (CL even,NZ)
  32.  
  33. 24 ib      AND AL,ib       Logical-AND immediate byte into AL
  34. 25 iv      AND eAX,iv      Logical-AND immediate vword into eAX
  35. 80 /4 ib   AND eb,ib       Logical-AND immediate byte into EA byte
  36. 20 /r      AND eb,rb       Logical-AND byte register into EA byte
  37. 83 /4 ib   AND ev,ib       Logical-AND immediate byte into EA vword
  38. 81 /4 iv   AND ev,iv       Logical-AND immediate vword into EA vword
  39. 21 /r      AND ev,rv       Logical-AND vword register into EA vword
  40. 22 /r      AND rb,eb       Logical-AND EA byte into byte register
  41. 23 /r      AND rv,ev       Logical-AND EA vword into vword register
  42. 63 /r      ARPL ew,rw    2 Adjust RPL of EA word not smaller than RPL of rw
  43.  
  44. 62 /r      BOUND rv,m2v  2 INT 5 if rw not between 2 vwords at [m] inclusive
  45. 0F BC      BSF rv,ev     3 Set rv to lowest position of NZ bit in ev
  46. 0F BD      BSR rv,ev     3 Set rv to highest position of NZ bit in ev
  47. 0F C8+r    BSWAP rd      4 Swap bytes 1,4 and 2,3 of dword register
  48.  
  49. 0F BA/4 ib BT rv/m,ib    3 Set Carry flag to bit # ib of array at rv/m
  50. 0F A3/r    BT rv/m,rv    3 Set Carry flag to bit # rv of array at rv/m
  51. 0F BA/7 ib BTC rv/m,ib   3 Set CF to, then compl bit ib of array at rv/m
  52. 0F BB/r    BTC rv/m,rv   3 Set CF to, then compl bit rv of array at rv/m
  53. 0F BA/6 ib BTR rv/m,     3 Set CF to, then reset bit ib of array at rv/m
  54. 0F B3/r    BTR rv/m,rv   3 Set CF to, then reset bit rv of array at rv/m
  55. 0F BA/5 ib BTS rv/m,ib   3 Set CF to, then set bit ib of array at rv/m
  56. 0F AB/r    BTS rv/m,rv   3 Set CF to, then set bit rv of array at rv/m
  57.                                                              6-10
  58.  
  59. 9A cp      CALL cp         Call far segment, immediate 4- or 6-byte address
  60. E8 cv      CALL cv         Call near, offset relative to next instruction
  61. FF /3      CALL ep         Call far segment, address at EA memory location
  62. FF /2      CALL ev         Call near, offset absolute at EA vword
  63. 0F FF ib   CALL80 ib     N Call 8080-emulation code at INT number ib
  64.  
  65. 98         CBW             Convert byte into word (AH = top bit of AL)
  66. 99         CDQ           3 Convert dword to qword (EDX = top bit of EAX)
  67. F8         CLC             Clear carry flag
  68. FC         CLD             Clear direction flag so SI and DI will increment
  69. FA         CLI             Clear interrupt enable flag; interrupts disabled
  70.  
  71. 0F 12/0    CLRBIT eb,CL  N Clear bit CL of eb
  72. 0F 13/0    CLRBIT ew,CL  N Clear bit CL of ew
  73. 0F 1A/0 ib CLRBIT eb,ib  N Clear bit ib of eb
  74. 0F 1B/0 ib CLRBIT ew,ib  N Clear bit ib of ew
  75. 0F 06      CLTS          2 Clear task switched flag
  76. F5         CMC             Complement carry flag
  77.  
  78. 3C ib      CMP AL,ib       Subtract immediate byte from AL for flags only
  79. 3D iv      CMP eAX,iv      Subtract immediate vword from eAX for flags only
  80. 80 /7 ib   CMP eb,ib       Subtract immediate byte from EA byte for flags only
  81. 38 /r      CMP eb,rb       Subtract byte register from EA byte for flags only
  82. 83 /7 ib   CMP ev,ib       Subtract immediate byte from EA vword for flags only
  83. 81 /7 iv   CMP ev,iv       Subtract immediate vword from EA vword, flags only
  84. 39 /r      CMP ev,rv       Subtract vword register from EA vword for flags only
  85. 3A /r      CMP rb,eb       Subtract EA byte from byte register for flags only
  86. 3B /r      CMP rv,ev       Subtract EA vword from vword register for flags only
  87.  
  88. 0F 26      CMP4S         N Compare CL nibbles BCD, DS:SI - ES:DI (CL even,NZ)
  89. A6         CMPS mb,mb      Compare bytes [SI] - ES:[DI], advance SI,DI
  90. A7         CMPS mv,mv      Compare vwords [SI] - ES:[DI], advance SI,DI
  91. A6         CMPSB           Compare bytes DS:[SI] - ES:[DI], advance SI,DI
  92. A7         CMPSD           Compare dwords DS:[SI] - ES:[DI], advance SI,DI
  93. A7         CMPSW           Compare words DS:[SI] - ES:[DI], advance SI,DI
  94.  
  95. 0F C7 /1   CMPX8 mq      5 If EDXEAX=mq then mq:=ECXEBX, else EAXEDX:=mq
  96. 0F B0 /r   CMPXCHG eb,rb 4 If AL=eb then set eb to rb, else set AL to eb
  97. 0F B1 /r   CMPXCHG ev,rv 4 If eAX=ev then set ev to rv, else set eAX to ev
  98. 0F A2      CPUID         5 If EAX=1 set EDXEAX to CPU identification values
  99. 99         CWD             Convert word to doubleword (DX = top bit of AX)
  100. 98         CWDE          3 Sign-extend word AX to doubleword EAX
  101. 2E         CS (prefix)     Use CS segment for the following memory reference
  102.  
  103. 27         DAA             Decimal adjust AL after addition
  104. 2F         DAS             Decimal adjust AL after subtraction
  105. FE /1      DEC eb          Decrement EA byte by 1
  106. FF /1      DEC ev          Decrement EA vword by 1
  107. 48+rv      DEC rv          Decrement vword register by 1
  108.  
  109. F6 /6      DIV eb          Unsigned divide AX by EA byte (AL=Quo AH=Rem)
  110. F7 /6      DIV ev          Unsigned divide eDXeAX by EA vword (eAX=Quo eDX=Rem)
  111. 3E         DS (prefix)     Use DS segment for the following memory reference
  112.                                                              6-11
  113.  
  114. C8 iw 00   ENTER iw,0    1 Make stack frame, iw bytes local storage, 0 levels
  115. C8 iw 01   ENTER iw,1    1 Make stack frame, iw bytes local storage, 1 level
  116. C8 iw ib   ENTER iw,ib   1 Make stack frame, iw bytes local storage, ib levels
  117. 26         ES (prefix)     Use ES segment for the following memory reference
  118.            F(any)          Floating point set is in Chapter 7
  119. F4         HLT             Halt
  120.  
  121. F6 /7      IDIV eb         Signed divide AX by EA byte (AL=Quo AH=Rem)
  122. F7 /7      IDIV ev         Signed divide eDXeAX by EA vword (eAX=Quo eDX=Rem)
  123. F6 /5      IMUL eb         Signed multiply (AX = AL * EA byte)
  124. F7 /5      IMUL ev         Signed multiply (eDXeAX = eAX * EA vword)
  125. 0F AF /r   IMUL rv,ev    3 Signed multiply ev into rv
  126. 6B /r ib   IMUL rv,ib    1 Signed multiply imm byte into vword register
  127. 69 /r iv   IMUL rv,iv    1 Signed multiply imm vword into vword register
  128. 69 /r iv   IMUL rv,ev,iv 1 Signed multiply (rv = EA vword * imm vword)
  129. 6B /r ib   IMUL rv,ev,ib 1 Signed multiply (rv = EA vword * imm byte)
  130.  
  131. E4 ib      IN AL,ib        Input byte from immediate port into AL
  132. EC         IN AL,DX        Input byte from port DX into AL
  133. E5 ib      IN eAX,ib       Input vword from immediate port into eAX
  134. ED         IN eAX,DX       Input vword from port DX into eAX
  135.  
  136. FE /0      INC eb          Increment EA byte by 1
  137. FF /0      INC ev          Increment EA vword by 1
  138. 40+rv      INC rv          Increment vw